In modern wireless communication systems, there is a persistent push for higher data rates and throughput. Multiple-Input Multiple-Output (MIMO) and Orthogonal Frequency Division Multiplexing (OFDM) are two known technologies for increasing wireless network capacity which have been adopted in various communication standards, such as, for example, the Institute of Electrical and Electronics Engineers (IEEE) 802.11n standard (see, e.g., IEEE Std 802.11n, “IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 5: Enhancements for Higher Throughput,” 2009, the disclosure of which is incorporated by reference herein in its entirety for all purposes), and the IEEE 802.16e standard (see, e.g., IEEE Std 802.16, “IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Broadband Wireless Access Systems,” 2009, and amendments thereto, the disclosures of which are incorporated by reference herein in their entireties for all purposes).
Received data detection in MIMO and OFDM communication systems has been challenging, primarily because each received signal is a superposition of simultaneously transmitted signals weighted by their corresponding channels. In theory, Maximum Likelihood Detection (MLD) is an optimal solution for received data detection. However, the computational complexity of an MLD approach increases exponentially with data throughput and is therefore unfeasible in high data rate MIMO systems. Several detection algorithms for MIMO systems achieving near-MLD performance have been proposed. For example, a QR decomposition with M-algorithm (QRD-M) scheme reduces the complexity by selecting M candidates with the smallest accumulated metrics at each level of the tree search. However, to achieve near-MLD performance for a QRD-M algorithm, M should be made large, thereby necessitating higher computational complexity, which is undesirable.